package com.sdz.chapitre18;

import java.util.ArrayList;
import java.util.List;

public class Main {

	public static void main(String[] args) {
		
		//Solo val = new Solo(12);
		//int nbre = (Integer)val.getValeur();
		
		//Solo<Integer> val = new Solo<Integer>(10);
		//int nbre = val.getValeur();
		//val.setValeur(12.2f);
		//val.setValeur(12);
		
		/*
		Duo<String, Boolean> d1 = new Duo<String, Boolean>("toto", true);
		System.out.println("Val de duo1 :\tval1 = " + d1.getValeur1() + "\t|\tval2 = " + d1.getValeur2());
		
		Duo<Integer, Boolean> d2 = new Duo<Integer, Boolean>(32, false);
		System.out.println("Val de duo1 :\tval2 = " + d2.getValeur1() + "\t|\tval2 = " + d2.getValeur2());
		//d2 = new Duo<Integer, String>(32, "false");
		//*/
		
		/*
		System.out.println("Liste de String");
		System.out.println("---------------------");
		
		List<String> listeString = new ArrayList<String>();
		listeString.add("string1");
		listeString.add("string2");
		listeString.add("string3");
		//listeString.add(1);

		for (String f : listeString) {
			System.out.println(f);
		}
		//*/
		
		
		/*
		System.out.println("Liste de Float");
		System.out.println("---------------------");
		
		List<Float> listeFloat = new ArrayList<Float>();
		listeFloat.add(12.25f);
		listeFloat.add(9.9f);
		listeFloat.add(2.2f);
		listeFloat.add(1.0f);
		
		
		for (float f : listeFloat) {
			System.out.println(f);
		}
		//*/
		
		/*
		System.out.println("---------------------");
		
		List<Voiture> listVoiture = new ArrayList<Voiture>();
		listVoiture.add(new Voiture());
		listVoiture.add(new Voiture());
		
		List<VoitureSansPermis> listVoitureSP = new ArrayList<VoitureSansPermis>();
		listVoitureSP.add(new VoitureSansPermis());
		listVoitureSP.add(new VoitureSansPermis());
		
		affiche(listVoiture);
		//affiche(listVoitureSP);
		//*/
		
		
		System.out.println("---------------------");
		
		List<Voiture> listVoiture = new ArrayList<Voiture>();
		listVoiture.add(new Voiture());
		
		List<VoitureSansPermis> listVoitureSP = new ArrayList<VoitureSansPermis>();
		listVoitureSP.add(new VoitureSansPermis());
		
		Garage garage = new Garage();
		garage.add(listVoiture);
		System.out.println("---------------------");
		garage.add(listVoitureSP);
		
		
		
	}
	
	
	//static void affiche(List<? extends Voiture> list) {
	/*
	static void affiche(List<? extends Voiture> list) {
		for (Voiture v : list) {
			System.out.print(v.toString());
		}
		System.out.println("");
	}
	//*/
	static void affiche(List<? super Voiture> list) {
		for (Object v : list) {
			System.out.print(v.toString());
		}
		System.out.println("");
	}
	
	
}
